
// set 在 Set 内部，两个NaN是相等的。
function unique(arr){
    let arrNaN = []
    //处理NaN情况
    for(let i=0;i<arr.length;i++){
        if(typeof arr[i] === 'number' && isNaN(arr[i])){
            arrNaN.push(arr[i])
        }
    }
    let set = new Set(arr)
    return [...arrNaN, ...set]
}

let arr = [false, true, undefined, null, NaN, NaN,[],[],{}, {},'a','a','a','g','q','d','a','e','q',1,'1','1'];

console.log(unique(arr))

//返回： [NaN, NaN, false, true, undefined, null,[], [], {}, {}, 'a', 'g',  'q', 'd', 'e', 1, '1']

